package com.ctshk.rpc.finance.req.onaccount;

import com.ctshk.rpc.finance.json.FileJson;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 申请挂账req
 */
@Data
@ApiModel(value = "OnAccountAddReq",description = "申请挂账req")
public class OnAccountAddReq implements Serializable {

    @ApiModelProperty(value = "挂账ID")
    private Long onAccountId;

    @NotNull(message = "账户类型不能为空")
    @ApiModelProperty(value = "账户类型1 大客户/代理商挂账,2 内部中心挂账,3 集团公司挂账",required = true)
    private Integer accountType;

    @ApiModelProperty(value = "账户ID")
    private Long accountId;

    @ApiModelProperty(value = "账户名称")
    private String accountName;

    @ApiModelProperty(value = "联系人")
    private String contactName;

    @ApiModelProperty(value = "联系电话")
    private String contactMobile;

    @ApiModelProperty(value = "邮箱")
    private String contactEmail;

    @ApiModelProperty(value = "地址")
    private String location;

    @ApiModelProperty(value = "银行账户")
    private String bankAccount;

    @ApiModelProperty(value = "部门ID")
    private Long deptId;

    @ApiModelProperty(value = "部门名称")
    private String deptName;

    @ApiModelProperty(value = "部门code")
    private String deptCode;

    @NotNull(message = "申请挂账额度不能为空")
    @ApiModelProperty(value = "申请挂账额度",required = true)
    private BigDecimal applyAmount;

    @NotNull(message = "币种ID不能为空")
    @ApiModelProperty(value = "币种ID",required = true)
    private Long currencyId;

    @NotNull(message = "币种名称不能为空")
    @ApiModelProperty(value = "币种名称",required = true)
    private String currency;

    @NotNull(message = "汇率不能为空")
    @ApiModelProperty(value = "汇率",required = true)
    private Double exchangeRate;

    @NotNull(message = "有效期不能为空")
    @ApiModelProperty(value = "有效期至",required = true)
    private LocalDateTime expireDate;

    @NotNull(message = "业务类型不能为空")
    @ApiModelProperty(value = "业务类型",required = true)
    private List<Integer> businessType;

    @ApiModelProperty(value = "说明")
    private String remark;

    @NotNull(message = "附件JSON不能为空")
    @ApiModelProperty(value = "附件JSON",required = true)
    private List<FileJson> filesJson;

    @ApiModelProperty(value = "用户ID")
    private Long userId;

}
